from SintaksnoStablo import *
from Funkcije import *

import sys

stablo = SintaksnoStablo()
stog = []
preth_poz = 0
korijen = 1

def main():
    global preth_poz
    global korijen

    for line in sys.stdin:

        if korijen:
            stog.append(stablo.dodaj_korijen()) # pocetni nezavrsni znak
            korijen = 0
            continue

        poz = 0
        while line[poz] == ' ':  # odredi dubinu cvora po broju razmaka u prefiksu
            poz += 1

        line = line.strip()
        tmp = line.split() # ['<ime>', '<broj_retka>', '<l-izraz>'] ili ['<ime>']

        if poz <= preth_poz:                     # grana stabla je 'dovrsena'
            for n in range(preth_poz - poz + 1): # makni visak sa stoga
                stog.pop()

        if line[0] == '<': # nezavrsni znak
            stog.append(stog[-1].dodaj_cvor(tmp[0]))
        else:
            stog.append(stog[-1].dodaj_cvor(tmp[0], tmp[1], tmp[2]))
        preth_poz = poz

    prijevodna_jedinica(stablo.cvorovi[0])
    nakon_obilaska()
    sys.exit(0)


def nakon_obilaska ():
    main = 0
    for n in stablo.cvorovi[0].tablica_znakova:
        if n.tip == 'funkcija' and n.je_def[0] == 0:
            print("funkcija")
            sys.exit(1)
        if n.ime == 'main' and n.tip[0] == 'funkcija':
            main = 1

    if not main:
        print("main")
        sys.exit(1)

if __name__ == "__main__":
    main()
